package com.cys.exam.interfaces.service.${package};

import com.cys.exam.interfaces.entity.${package}.I${entityName};
import com.github.pagehelper.PageInfo;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 *  ${entityComment} Service接口
 *  @author ${author}
 */
@Transactional
public interface ${entityName}Service {
	
	/**
	 *  新增${entityName}
	 *  @param params ${entityName}实体类对应参数
     *  @return ${entityName}实体类
	 */
    I${entityName} save(Map<String, Object> params) throws Exception;
    
	/**
	 *	修改${entityName}
	 *  @param params ${entityName}实体类对应参数
 	 *  @return ${entityName}实体类
	 */
	I${entityName} update(Map<String, Object> params) throws Exception;
	
	/**
	 *  通过id物理删除${entityName}
	 *  @param id ${entityName}主键
	 */
	void deleteById(Long id);
	
	/**
	 *  批量物理删除${entityName}
	 *  @param ids ${entityName}主键数组
	 */
	void deleteBatch(Long[] ids);

	/**
	 *  通过id逻辑删除${entityName}
	 *  @param id ${entityName}主键
	 */
	void logicDeleteById(Long id);
	
	/**
	 *  批量逻辑删除${entityName}
	 *  @param ids ${entityName}主键数组
	 */
	void logicDeleteBatch(Long[] ids);
	
	/**
	 *  根据id加载${entityName}
	 *  @param id ${entityName}主键
     *  @return ${entityName}实体类
	 */
	I${entityName} findEntityById(Long id);

	/**
	 *  获取${entityName}列表数据
	 *	@param map 默认空数据集
	 *  @return 数据列表
	 */
	List<I${entityName}> findList(Map<String,Object> map);

    /**
    * 分页获取数据
    *
    * @param pageNo   当前页
    * @param pageSize 当前页数
    * @param params   检索参数
	* @return 分页数据
    */
    PageInfo<I${entityName}> findPage(Integer pageNo, Integer pageSize, Map<String, Object> params);
	
}
 



